One of the most-used digital filter forms is the biquad. A biquad is a second order (two poles and two zeros) Infinite Impulse Response (IIR) filter. It is high enough order to be useful on its own, and because of the coefficient sensitivities in higher order filters the biquad is often used as the basic building block for more complex filters. For instance, a biquad low pass filter has a cutoff slope of 12 dB/octave, useful for tone controls; if a 24 dB/octave filter is needed, you can cascade two biquads and it will have less coefficient sensitivity problems than a single fourth-order design.
Biquads come in several forms. The most obvious, a direct implementation of the second order differential equation (y[n]=a0*x[n]+a1*x[n−1]+a2*x[n−2]−b1*y[n−1]−b2*y[n−2]), is called direct form I and is shown in FIG. 1.
Direct form I is the best choice for implementation in a fixed point processor because it has a single summation point.
We can take direct form I and split it at the summation point as shown in FIG. 2, and then take the two halves and swap them, so that the feedback half (the poles) comes first as shown in FIG. 3. Now one pair of z delays is redundant, storing the same information as the other pair. Merging the two pairs yields the direct form II configuration shown in FIG. 4.
In floating point applications, direct form II is preferred because it reduces memory requirements, and floating point computation is not sensitive to overflow in the way fixed point computations are.
We can improve on this configuration by transposing the filter. To transpose a filter, the signal flow direction is reversed. Output becomes input, distribution nodes become summers, and summers become nodes as shown in FIG. 5. The characteristics of the filter are unchanged, but in this case the floating point characteristics are better. Floating point computation has better accuracy when intermediate sums are with closer values (adding small numbers to large numbers in floating point is less precise than with similar values).